package com.kgc.members.utils;

import lombok.Data;

import java.util.Collection;

/**
 * Created on 2021/6/1.
 * <p>
 * Author: GongMingJie
 * <p>
 * Description: 统一分页工具类
 */
@Data
public class PageSupport<T> {

    /**
     * 当前页码 - 前台获取/手动设置
     */
    private int currPageNo;

    /**
     * 分页的起始行 - 设置当前页时自动确定，无需赋值
     * sql语句中limit x,y 中的 x
     */
    private int pageIndex;

    /**
     * 页面显示数据条数 - 手动设置
     * sql语句中limit x,y 中的 y
     */
    private int pageSize;

    /**
     * 总条数 - 数据库查询
     */
    private int totalCount;

    /**
     * 总页数 - 设置总条数时自动确定，无需赋值
     */
    private int totalPage;

    /**
     * 分页数据 - 数据库查询
     */
    private Collection<T> data;

    /**
     * 当设置当前页码的时候，可以确定起始行数
     */
    public void setCurrPageNo(int currPageNo) {
        if (currPageNo > 0){
            this.currPageNo = currPageNo;
            this.pageIndex = (currPageNo - 1) * pageSize;
        }
    }

    /**
     * 当设置总条数时，可以确定总页数
     */
    public void setTotalCount(int totalCount) {
        if (totalCount > 0){
            this.totalCount = totalCount;
            /*if (this.totalCount % this.pageSize == 0){
                this.totalPage = this.totalCount / this.pageSize;
            }else {
                this.totalPage = this.totalCount / this.pageSize + 1;
            }*/
            this.totalPage = this.totalCount % this.pageSize == 0 ? (this.totalCount / this.pageSize) : (this.totalCount / this.pageSize + 1);
        }
    }
}
